The present invention relates to bi-directional communication over a network and, in particular, relates to a protocol to connect Internet Protocol (IP) hosts via a control bus.
As today""s vehicles have become more sophisticated and dependent upon a variety of electronic and electrical components, it has become necessary to devise methods of networking the various components together. Communication is needed between the many circuits and functions of the vehicle, for example, to shift a transmission in response to engine load.
In order to standardize communications between the various components of the vehicles, the Controller Area Network (CAN) was defined as a serial communications bus. CAN uses a shared broadcast bus that runs at speeds up to one megabit per second. The CAN protocol sends message frames of variable lengths, containing from zero to eight data bytes, among various devices within the vehicle wherein each frame has a unique identifier.
The Society of Automotive Engineers (SAE) has developed a standard CAN protocol, SAEJ1939, for the bus and truck industry, based upon CAN Specification 2.0 Part B by Robert Bosch, GmbH. The SAE specification gives plug-and-play capabilities for vehicle manufacturers. The specification assigns 29 bit frame identifiers for different purposes, such as engine diagnostics and vehicle position, and specifies a data rate of 250 kilobits per second. Standard SAEJ1939 protocols allow modules from many suppliers to be easily linked together forming a type of open architecture. An open architecture allows standardized diagnostic testing and allows suppliers to benefit from the economies of scale of mass-produced standard protocol devices.
SAEJ1939 uses the CAN protocol which permits any device to transmit a message frame on the network when the bus is idle. Each frame identifier includes, in order, a field for message priority, a field for the type of data that the message contains, and a field for the sending node""s address. The entire 29-bit identifier uniquely establishes the overall priority of each frame. The protocol avoids collisions on the CAN by an arbitration process that occurs during identifier transmission (using a non-destructive arbitration scheme). This arbitration permits higher priority messages to get through with lower latency (less delay).
Subpart SAEJ1939/21 specifies the link layer protocol for SAEJ1939. Other parts of SAE J1939 define the actual application content of messages. As such, SAEJ1939 defines a simple two-layer networking architecture, a link layer and an application layer. The link layer (SAEJ1939/21) allows for proprietary messages of arbitrary content to be communicated. Standard SAEJ1939 devices ignore such messages.
A computer network is a system for communications among computers that allows them to share information. The content, scope, size, speed, and reliability of a network varies depending on the protocols and implementation used. Protocols are preestablished methods of communication between computers. The term TCP/IP (Transmission Control Protocol/Internet Protocol), refers to a family of protocols of which TCP and IP are just two. TCP/IP is broken down into a protocol of a number of layers. Each layer corresponds to a different facet of communication within the network. Devices that communicate using TCP/IP are referred to as IP hosts.
The link layer is responsible for communicating with actual network hardware. The link layer transfers data, which the link layer receives from the network bus, to the network layer. The link layer put s data, which the link layer receives from the network layer, on the bus. Within the SAEJ1939 architecture, the SAEJ1939/21 protocol defines the link layer.
The network layer determines how to get data to its destination, either out onto the bus or into application programs. The network layer makes no decision whether or not the data will reach its destination but only decides where to put the data for transmission. The third layer, the transport layer, provides data flow for the application layer. The transport layer guarantees the reliability of the communication. The fourth or application layer is where the user or IP client or server program interacts with the network. This is where any application programs reside.
The IP (of TCP/IP) resides on the network layer and is used for almost all communication between IP hosts. The basic communications message unit in IP is the IP datagram. When sending datagrams, the IP determines how to get the datagrams to their destinations and when receiving datagrams, determines how and where they belong. IP does not concern itself with whether the datagrams arrive reliably at their given destination or with the order in which they arrive. If a datagram arrives with any problems, IP discards it. It is the responsibility of the transport layer and application layer to determine, to correct, or to otherwise deal with the unreliability of datagrams. The IP is responsible for recognizing source and destination addresses while ensuring receipt at the proper location as well as checking for the accuracy of datagrams received from the network.
IP is the most widely used network layer protocol in the world. It is available on almost all of the world""s desktop computers, and it is becoming widely used in embedded computers. Software for many ubiquitous transport and application layer protocols that run on top of IP is widely available for virtually all computer operating systems.
What is required is a protocol for incorporating IP hosts onto an application specific control bus such as a SAEJ1939. Further, what is required is a method and apparatus to transmit IP datagrams without interfering with the interaction of standard CAN devices, and, specifically, without interfering with the interaction of standard SAE J1939 devices.
The present invention includes a system and method to implement Internet Protocol (IP) hosts on an application specific bus without disrupting the application specific bus. In one embodiment, the application specific bus address of a remote device is determined, the remote device having an IP address in addition to the application specific bus address. An IP host formats a message conforming to the application specific bus, the message containing an IP datagram and message identifiers. The IP host transmits the message on the application specific bus. A destination IP host receives the message based upon the application specific bus address of the destination IP host and authenticates the message as an IP message based upon the message identifiers. In addition, the destination IP host extracts the IP datagram from the message and processes the IP data by a conventional IP network processing protocol.